package com.netty.bytebuf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufAllocator;

import java.nio.ByteBuffer;
import java.util.Optional;

/**
 * Netty and JDK nio byteBuf create method
 *
 * @author xl-9527
 */
public class ByteBufDemo {

    /**
     * Netty，默认的是 direct，可以指定 head ｜ direct <br>
     * 1. 默认是 pool 的类型
     *
     * @param capacity 可以分为容量和可扩容的容量，这个最大的容量就是正数的最大值
     */
    private ByteBuf getDirectByteBuf(final Integer capacity) {
        // 这里保持和 netty 的设置一样默认 256 字节
        return ByteBufAllocator.DEFAULT.directBuffer(Optional.ofNullable(capacity).orElse(256));
    }

    private ByteBuffer getJdkByteBuffer(final Integer capacity) {
        return ByteBuffer.allocate(Optional.ofNullable(capacity).orElse(256));
    }
}
